package main

import (
	"flag"
	"fmt"
	"hostname-and-ssh/model"
	"hostname-and-ssh/service"
	"log"
	"os"
)

func main() {
	// 定义命令行参数
	configFile := flag.String("f", "", "Path to the YAML config file (required)") // -f 是必须的参数
	helpFlag := flag.Bool("h", false, "Display help information")                 // 增加帮助标志
	flag.Parse()

	// 如果 -h 标志被设置，则显示帮助信息并退出
	if *helpFlag {
		fmt.Println("Usage: ./hostname-and-ssh -f <config-file>")
		flag.PrintDefaults() // 显示所有标志的默认信息
		os.Exit(0)
	}

	// 如果没有提供 -f 参数，直接退出
	if *configFile == "" {
		log.Fatal("Error: -f <config-file> is required. Use -h for help.")
	}

	// 读取配置文件
	var config model.Config
	err := config.ReadConfig(*configFile)
	if err != nil {
		log.Fatalf("Error reading config: %v", err)
	}

	// 调用 host.go 中的 PerformOperations 执行所有操作
	err = service.PerformOperations(&config)
}
